9aa80b9a5d7949f147543e0b86a57f55c654dc4c,platform/core-impl/src/com/intellij/psi/impl/source/tree/AstBufferUtil.java,AstBufferUtil,toBuffer,#ASTNode#char[]#number#boolean#,36

Before Change


  public static int toBuffer(@NotNull final ASTNode element, @Nullable final char[] buffer, int offset, final boolean skipWhitespaceAndComments) {
    final int[] result = {offset};

    ((TreeElement)element).acceptTree(new RecursiveTreeElementWalkingVisitor(false) {
      @Override
      public void visitLeaf(LeafElement element) {
        ProgressIndicatorProvider.checkCanceled();
        if (element instanceof ForeignLeafPsiElement ||
            (skipWhitespaceAndComments && (element instanceof PsiWhiteSpace || element instanceof PsiComment))) {
          return;
        }

        result[0] = element.copyTo(buffer, result[0]);
      }

      @Override
      public void visitComposite(CompositeElement composite) {
        if (composite instanceof LazyParseableElement) {
          LazyParseableElement lpe = (LazyParseableElement)composite;
          int lpeResult = lpe.copyTo(buffer, result[0]);
          if (lpeResult >= 0) {
            result[0] = lpeResult;
            return;
          }
          assert lpe.isParsed();
        }

        super.visitComposite(composite);
      }
    });

    return result[0];
  }

After Change



  public static int toBuffer(@NotNull final ASTNode element, @Nullable final char[] buffer, int offset, final boolean skipWhitespaceAndComments) {
    BufferVisitor visitor = new BufferVisitor(skipWhitespaceAndComments, skipWhitespaceAndComments, offset, buffer);
    ((TreeElement)element).acceptTree(visitor);
    return visitor.end;
  }